1. Field of Invention
This invention relates to digital communications networks and related apparatus. More particularly, the invention relates to receivers using thresholds on queues of received information to generate transmit rates and communicating those rates to senders for prevention of underflow and overflow of said queues.
2. Description of Prior Art
In Fibre Channel networks, one flow control mechanism for congestion control is the monitoring in a receiver of queue lengths of data awaiting processing by the receiver. The receiver informs the sender of a “credit” value that can be translated into a rate at which the sender sends data. A tutorial on credit based flow control systems for Fibre Channel is described in notes by InterOperability Lab of the University of New Hampshire at    http://www.iol.unh.edu/training/fc/fc_tutuorial.html#Flow_Controlupdated May 4, 1998. Typically, the credit or, as it is called herein, transmit rate is determined heuristically and performance may not be guaranteed. What is needed in the art is a receiver which periodically refreshes the transmit rates it generates and thereby provides transmit rates which can be guaranteed to prevent overflow or underflow of the receiver.
U.S. Pat. No. 5,515,359, of Zheng issued May 7, 1996 describes a system for controlling traffic in a digital communication network to avoid data loss due to congestion utilizes an integrated credit-based and rate-based traffic control approach, and adjusts the rate at which data is transmitted from a source in accordance with feedback in the form of rate and credit adjustment information from a network reflecting the ability of the network to transmit data and the destination to receive data. In one embodiment, a source end system sends out resource management cells composed of various fields containing rate and credit information. The intermediate systems of the network and the destination end system update the corresponding fields according to their congestion status and send the resource management cells back to the source end system so that the source end system controls the data transmission accordingly. In a preferred embodiment, a source end system calculates an allowed sending rate from each of the fields in a resource management cell, and the minimum one among them is used to control data transmission.
U.S. Pat. No. 5,777,987 of Adams et al. issued Jul. 7, 1998, describes a method and apparatus for using a primary FIFO and one or more secondary FIFOs in parallel to simplify flow control and routing in packet communication operations wherein at least one FIFO (buffer) is associated with each of a plurality of receiving nodes or components within a receiving node. The received packets are applied simultaneously to a primary FIFO and to all associated secondary FIFOs in the receiver of a packet communications link. After receipt of a packet, the packet is removed from any secondary FIFOs which correspond to receiver nodes or components to which the packet was not routed. For all receiving nodes or components to which the packet was routed, if the packet was stored in each associated secondary FIFO without overflow, then the packet is also purged from the primary FIFO. If any secondary FIFO overflowed by storage of the received packet, then the packet is purged from the overflowed FIFO and the packet remains stored in the primary FIFO for further processing. Flow control signals are generated and applied to the transmitting source as required in accordance with the status of the primary FIFO. The secondary FIFOs are not directly relevant to flow control logic. The receiving component corresponding to each secondary FIFO locates the next packet for processing by inspecting the associated secondary FIFO as well as the primary FIFO if the secondary FIFO overflowed. These methods and apparatus simplify flow control and routing control in packetized communication receivers
U.S. Pat. No. 5,748,613 of Kilk, et al. issued May 5, 1998 describes a method of pacing a stream of data transmitted from a data source to a buffered data destination with a determined number of available storage units, the data destinations being configured to consume data and thereby to free storage units for receipt of additional data. The pacing of data communication includes: (1) identifying a beginning transmit rate; (2) incrementing the beginning transmit rate with each storage unit freed to identify an present transmit rate; (3) transmitting units of data in accordance with determined limits, the number of data units sent providing a transmission count; (4) selectively updating the determined number of available storage units by determining the difference between the beginning transmit rate and the present transmit rate, and determining the sum of the result and the previously determined number of available storage units to provide an updated determined number of available storage units; and (5) selectively updating the determined number of available storage units by determining the difference between the transmission count and the previously determined number of available storage units to provide an updated determined number of available storage units.
U.S. Pat. No. 6,097,705 of Ben-Michael, et al. issued Aug. 1, 2000, describes a repeater device for forwarding a data packet from a first Ethernet collision domain to a second Ethernet collision domain, the device having a plurality of ports, each port for connection to an independent Ethernet collision domain. Furthermore, each port has an associated receive buffer and an associated transmit buffer, and there is a means for forwarding a data packet from the receive buffer of a receiving port to the transmit buffer of a transmitting port. A data packet received at the receiving port is then first stored in that port's the receive buffer, is forwarded to the transmit buffer of the transmitting port, and is then transmitted from the transmit buffer by the transmitting port.
None of the above prior art discloses a credit based receiver which periodically adjusts transmit rates and storage thresholds and guarantees the prevention of overflow and underflow in the receiver